const jwt = require("jsonwebtoken")
const auth = require('basic-auth')
const {jwtcode} = require("../config/config")
module.exports={
    //验证token是否合法的中间件
    async auth(ctx,next){
        const obj = auth(ctx.req); //ctx.req:原生的请求头
        const token = obj.name;
        try{
            const user = jwt.verify(token,jwtcode);
            ctx.user = user; //因为下一个中间件要用!!
        }catch (e) {
            ctx.throw(403,"登录过期")
        }

        //说明token合法!
        await next()
    },

    //判断登录的用户 和 当前id指向的用户 是否为同一个用户
    async equal(ctx,next){
        //当前指定的id
        const userId = ctx.params.userId;
        //当前登录用户的id
        const id = ctx.user.id;
        if(userId === id){
            next()
        }else {
            ctx.throw(412,"当前登录的用户无效")
        }
    }
}